Ansible-এ কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করা একটি সাধারণ কাজ, বিশেষ করে যখন সার্ভার, অ্যাপ্লিকেশন বা অন্যান্য সার্ভিসগুলোর সেটআপ অটোমেট করতে হয়। এটি করার জন্য Ansible-এ সাধারণত template মডিউল ব্যবহার করা হয়, যেখানে Jinja2 টেম্পলেটের মাধ্যমে কনফিগারেশন ফাইল তৈরি এবং রিমোট হোস্টে ডিপ্লয় করা হয়। এখানে কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করার একটি উদাহরণ দেখানো হলো।
ধাপ ১: টেম্পলেট ফাইল তৈরি করা
প্রথমে, আপনার টেম্পলেট ফাইল তৈরি করতে হবে। টেম্পলেট ফাইল সাধারণত templates/ ডিরেক্টরিতে সংরক্ষণ করা হয় এবং এটি Jinja2 সিনট্যাক্স ব্যবহার করে।
উদাহরণ টেম্পলেট ফাইল: templates/nginx.conf.j2
server {
listen {{ http_port }};
server_name {{ domain_name }};
location / {
proxy_pass http://{{ backend_server }};
}
}
বিশ্লেষণ:
- এখানে
{{ http_port }},{{ domain_name }}, এবং{{ backend_server }}ভ্যারিয়েবলগুলোর মাধ্যমে ডায়নামিক মান ব্যবহার করা হয়েছে। - Ansible প্লেবুক বা ইনভেন্টরি থেকে এই ভ্যারিয়েবলগুলোর মান আসবে।
ধাপ ২: প্লেবুক তৈরি করা
এরপর, আপনি একটি প্লেবুক তৈরি করবেন যেখানে template মডিউল ব্যবহার করে টেম্পলেট ফাইলটি রিমোট হোস্টে ডিপ্লয় করবেন।
উদাহরণ প্লেবুক: deploy_nginx.yml
---
- name: Deploy Nginx configuration file
hosts: webservers
become: yes
vars:
http_port: 80
domain_name: example.com
backend_server: 192.168.1.10
tasks:
- name: Copy Nginx configuration using template
template:
src: templates/nginx.conf.j2
dest: /etc/nginx/conf.d/nginx.conf
owner: root
group: root
mode: '0644'
- name: Restart Nginx service
service:
name: nginx
state: restarted
বিশ্লেষণ:
- ভ্যারিয়েবল:
http_port,domain_name, এবংbackend_serverভ্যারিয়েবলগুলো প্লেবুকেরvarsসেকশনে উল্লেখ করা হয়েছে।
templateমডিউল:src: টেম্পলেট ফাইলের পাথ (লোকাল সিস্টেমে)।dest: রিমোট সিস্টেমে টেম্পলেট ফাইলটি কপি করার স্থান।owner,group, এবংmode: টার্গেট ফাইলের মালিকানা এবং পারমিশন সেট করা হয়েছে।
- Nginx রিস্টার্ট করা:
- কনফিগারেশন পরিবর্তনের পরে Nginx সার্ভিস রিস্টার্ট করতে
serviceমডিউল ব্যবহার করা হয়েছে।
- কনফিগারেশন পরিবর্তনের পরে Nginx সার্ভিস রিস্টার্ট করতে
ধাপ ৩: প্লেবুক রান করা
এখন, প্লেবুক রান করে কনফিগারেশন ফাইল তৈরি এবং ডিপ্লয় করতে হবে।
ansible-playbook -i inventory deploy_nginx.yml
-i inventory: এখানে আপনার ইনভেন্টরি ফাইলের পাথ দিতে হবে যা টার্গেট হোস্ট বা হোস্ট গ্রুপ নির্ধারণ করে।
সারাংশ
- টেম্পলেট ফাইল তৈরি: Jinja2 টেম্পলেট ব্যবহার করে একটি কনফিগারেশন ফাইল তৈরি করা।
- প্লেবুক তৈরি:
templateমডিউল ব্যবহার করে টেম্পলেট ফাইলটি রিমোট হোস্টে কপি করা এবং সেট করা। - সার্ভিস রিস্টার্ট: কনফিগারেশন পরিবর্তনের পর সার্ভিস রিস্টার্ট করা।
এই পদ্ধতি অনুসরণ করে, আপনি সহজেই কনফিগারেশন ফাইল তৈরি ও ডিপ্লয় করতে পারবেন। Ansible-এর টেম্পলেট মডিউল এবং প্লেবুক ব্যবহারে কনফিগারেশন ম্যানেজমেন্ট সহজ এবং কার্যকর হয়ে ওঠে।